package org.springblade.modules.system.vo.config;

import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.List;

/**
 * @Author ysq
 * @Date 2025/07/09
 * @Description 困人报警通知配置
 */
@Data
public class AlarmNotifyConfig {

	/**
	 * 是否开启困人报警通知
	 */
	private Boolean alarmNotifyEnabled = false;

	/**
	 * 轮次配置，最多5个，最少1个
	 */
	private List<RoundConfig> rounds;

	@Data
	public static class RoundConfig {
		/**
		 * 通知对象类型：1-责任人，2-角色
		 */
		@Max(value = 2, message = "通知对象类型错误")
		@Min(value = 1, message = "通知对象类型错误")
		private Integer type;

		/**
		 * 角色名称，仅当 type 为 "角色" 时必填
		 */
		private String role;

		/**
		 * 角色别名，仅当 type 为 "角色" 时必填
		 */
		private String roleAlias;

		/**
		 * 通知范围，仅当 type 为 "角色" 时必填
		 * 1-全部电梯，默认, 2-所在梯组电梯
		 */
		@Max(value = 2, message = "通知范围类型错误")
		@Min(value = 1, message = "通知范围类型错误")
		private Integer scope;
	}

}
